package fina2.dcs.common;

import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
import javax.faces.component.html.HtmlInputText;
import javax.faces.component.html.HtmlSelectBooleanCheckbox;
import javax.faces.component.html.HtmlSelectOneMenu;

public class UIComponentHelper {
	public static void clearComponent(UIComponent component) {
		if (component instanceof EditableValueHolder) {
			EditableValueHolder editableValueHolder = (EditableValueHolder) component;

			if (!(component instanceof HtmlInputText) && !(component instanceof HtmlSelectOneMenu) && !(component instanceof HtmlSelectBooleanCheckbox)) {
				editableValueHolder.setValue(null);
			} else {
				if (component instanceof HtmlInputText && !((HtmlInputText) component).isDisabled() && !((HtmlInputText) component).isReadonly()) {
					editableValueHolder.setValue(null);
				}
				if (component instanceof HtmlSelectOneMenu && !((HtmlSelectOneMenu) component).isDisabled() && !((HtmlSelectOneMenu) component).isReadonly()) {
					editableValueHolder.setValue(null);
				}
			}

			editableValueHolder.setValid(true);
		}

		for (UIComponent child : component.getChildren()) {
			clearComponent(child);
		}
	}
}
